<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="StudentSchoolEnrollmentType">
    <xs:annotation>
      <xs:documentation>This object defines information related to a student's enrollment.  StudentSchoolEnrollment
						instances must not span multiple school years.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="EntryDate" minOccurs="0" type="xs:date">
        <xs:annotation>
          <xs:documentation>The date from when this enrollment is valid.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EntryType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0619EntryTypeType">
              <xs:annotation>
                <xs:documentation>Code indicating the type of entry for this enrollment</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GradeLevel" minOccurs="0" nillable="true" type="sif:GradeLevelType">
        <xs:annotation>
          <xs:documentation>Grade or academic level of student.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Homeroom" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>Homeroom for this enrollment.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefType">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <xs:documentation>The name of the object referenced.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="RoomInfo" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Advisor" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>Staff member assigned as an advisor.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefType">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <xs:documentation>The name of the object referenced.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="StaffPersonal" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Counselor" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>Staff member assigned as an advisor.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefType">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:annotation>
                  <xs:documentation>The name of the object referenced.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="StaffPersonal" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExitDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>The last school calendar day (membership day) the student was enrolled in the school (inclusive). If the student has exited the school, ExitDate must have a value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ExitStatus" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0643ExitWithdrawalStatusType">
              <xs:annotation>
                <xs:documentation>Code indicating the exit status for this enrollment.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExitType" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0644ExitWithdrawalTypeType">
              <xs:annotation>
                <xs:documentation>Code indicating the type of exit for this enrollment.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="FTE" minOccurs="0" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:annotation>
              <xs:documentation>Full-time equivalent numeric value of the student's course load during this enrollment, expressed in decimal form, where 1.00 represents a full-time enrollment.</xs:documentation>
            </xs:annotation>
            <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:fractionDigits value="2" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="FTPTStatus" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>An indication of whether the student is enrolled full time or part time.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="FullTime" />
            <xs:enumeration value="PartTime" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ResidencyStatus" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" minOccurs="0" type="sif:NCES0598PublicSchoolResidenceStatusType">
              <xs:annotation>
                <xs:documentation>Code indicating the residency status for this enrollment.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="NonResidentAttendReason" minOccurs="0" nillable="true" type="sif:NCES0599NonResidentAttendanceRationaleType">
        <xs:annotation>
          <xs:documentation>
							If the school represented by this enrollment is outside of the student's usual attendance area
							(as indicated in the ResidencyStatus element), this element indicates the reason that the student attends this school.
						</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) that uniquely identifies a particular enrollment.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the student to whom this information is linked.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>The ID (GUID) of the school to which this enrollment applies.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="MembershipType" use="required">
      <xs:annotation>
        <xs:documentation>The type of this enrollment as it relates to the school identified in SchoolInfoRefId.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Home">
            <xs:annotation>
              <xs:documentation>The school is responsible for reporting the student's membership/child accounting information</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Concurrent">
            <xs:annotation>
              <xs:documentation>The school is not the primary reporting unit for the student's membership/child accounting information</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Summer">
            <xs:annotation>
              <xs:documentation>A summer school enrollment, not part of the regular school year</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="TimeFrame" use="required">
      <xs:annotation>
        <xs:documentation>The timeframe of the enrollment based on the SIF_Date in the SIF_Header of the message. For events, it is determined as of the date the event is generated. For requests and responses, it is calculated based on the date of the request.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Current">
            <xs:annotation>
              <xs:documentation>Event/request date falls between EntryDate and ExitDate (inclusive)</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Historical">
            <xs:annotation>
              <xs:documentation>Event/request date falls after ExitDate</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Future">
            <xs:annotation>
              <xs:documentation>Event/request date falls before EntryDate</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="SchoolYear" use="required" type="sif:SchoolYearType">
      <xs:annotation>
        <xs:documentation>
							School year for which this enrollment is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007 for the 2006-07 school year). StudentSchoolEnrollment instances must not span multiple school years.
						</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="StudentSchoolEnrollment" type="sif:StudentSchoolEnrollmentType" />

</xs:schema>